enum TaskState {
    /**0 不可接状态*/
    cannotAccept = 0,
    /**1 可接  但还未接的状态*/
    canAccept = 1,
    /**2 已接  正在进行中*/
    doTasking = 2,
    /**3 完成  未领奖*/
    completeTask = 3,
    /**4 完成  已领奖*/
    finishTask = 4,
}

/**任务 */
export default class Task {
    /**任务id*/
    private m_TaskID: number;
    /**任务状态*/
    private m_TaskState: TaskState;
    /**任务进度*/
    private progress: number;
    /**是否为循环任务 */
    AchieveType: number;
    /**数据类型 */
    m_TaskData: any;
    /**道具类型 */
    m_ResData: any;
    /**任务类型1 */
    m_TaskTypeOne: any;
    /**任务类型2 */
    m_TaskTypTwo: any;

    /**更新 任务 */
    UpdateTask() {

    }
    /**获取条件判定 */
    public GetTaskCondition(): boolean {
        this.m_TaskData.CurNum = this.GetTaskNumber();
        if (this.m_TaskData.CurNum >= this.m_TaskData.CurMaxNum) return true;
        return false;
    }

    /**获取任务条件的值 */
    protected GetTaskNumber(type: any = this.m_TaskTypTwo): number {
        // switch (this.m_TaskTypeOne) {
        //     case ETaskType.Skill:
        //         return this.ETaskTypeSkill(type);
        //     case ETaskType.Creator:
        //         return this.ETaskTypeCreator(type);
        //     case ETaskType.collection:
        //         return this.ETaskTypecollection(type);
        //     case ETaskType.ACE:
        //         return this.ETaskTypeACE();
        //     case ETaskType.Chanllenge:
        //         return this.ETaskTypeChanllenge();
        //     case ETaskType.Building:
        //         return this.ETaskTypeBuilding(type);
        //     default:
        //         return 0;
        // }
        return 0;
    }

    //#region  根据类型2 获取对应的数值 
    /**击杀 */
    protected ETaskTypeSkill(): number {
        return 0;
    }
    /**生成 */
    protected ETaskTypeCreator(): number {
        return 0;
    }
    /**收集 */
    protected ETaskTypecollection(): number {

        return 0;
    }
    /**团灭 */
    protected ETaskTypeACE(): number {
        return 0;
    }
    /**挑战 */
    protected ETaskTypeChanllenge(): number {
        return 0;
    }
    /**建造与升级 */
    protected ETaskTypeBuilding(): number {
        return 0;
    }
    //#endregion


    /** 通过进度条获取进度条信息*/
    public GetProgressRateDataTwo(): { rate: number, rateTxt: string } {
        let CurCount: number = this.m_TaskData.CurNum;
        let value = this.m_TaskData;
        var rate = CurCount / value.CurMaxNum * 100;
        var rateTxt = CurCount + '/' + value.CurMaxNum;
        let obj = { rate: rate, rateTxt: rateTxt };
        return obj;
    }
    /**根据类型1 使用字符串解析方法 并返回对应类型 */
    protected GetTypeByETaskType(TypeStr: string): any {
        // switch (this.m_TaskTypeOne) {
        //     case ETaskType.Skill:
        //         return this.GetEntityTypeByString(TypeStr);
        //     case ETaskType.Creator:
        //         return this.GetEntityTypeByString(TypeStr);
        //     case ETaskType.collection:
        //         return this.GetResItemTypeeByString(TypeStr);
        //     case ETaskType.ACE:
        //         return 'test';//this.GetEntityTypeByString(TypeStr);
        //     case ETaskType.Chanllenge:
        //         return 'test';//this.GetEntityTypeByString(TypeStr);
        //     case ETaskType.Building:
        //         return this.GetRoomLayerTypeeByString(TypeStr);
        //     default:
        //         return null;
        // }
    }

    GetResICONById(ResId: number): any {
        return;
    }
    //#region  获取字符串解析 获取类型参数
    /**获取房间类型 */
    protected GetRoomLayerTypeeByString(TypeStr: string): any {
        return null;
    }

    /**获取对象类型 */
    protected GetEntityTypeByString(TypeStr: string): any {
        return null;
    }
    /**获取道具类型 */
    protected GetResItemTypeeByString(TypeStr: string): any {
        return null;
    }

    //#endregion

}